// pages/order/order.js
/* 页面打开的时候onShow
    0 无法在Onshow中获取url参数
    0.5 判断是否有token
    1.获取Url上的参数type
    2.根据type值，获取数据
    2.1根据type去修改激活被选中
    3.渲染页， 
  2.点击不同的标题渲染不同数据

*/
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 列表栏
    tabs:[
      {
        id:0,
        value:"全部订单",
        isActive:true
      },
      {
        id:1,
        value:"待付款",
        isActive:false
      },
      {
        id:2,
        value:"待发货",
        isActive:false
      },
      {
        id:3,
        value:"退款退货",
        isActive:false
      }
    ],
    // 成功后的数据
    PayOrders:[]
  },
  onShow(){
    const token =wx.getStorageSync('token');
    if(!token){
      wx.navigateTo({
        url: '/pages/auth/auth'
      });
      return;
    }
    // 1.获取当前小程序的页面栈 页面栈的长度最大是10个页面
    let pages = getCurrentPages();
    // 2.数组中 索引最大的页面就是当前页
    let currentPage = pages[pages.length-1];
    console.log(currentPage.options);
    // 3.获取url上的参数
    const {type} = currentPage.options;
    // 4.激活选中页面标题
    this.changeTitle(type-1);
    // // 4.获取到本地存储的支付信息
    // let PayOrders = wx.getStorageSync('PayOrders');
    let PayOrders = this.orderTriage(type);
    // 5.赋值给data ,渲染页面
    this.setData({PayOrders})
    console.log(PayOrders);
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },
  // 根据标题是索引来激活选中
  changeTitle(index){
    // 2.修改原数组
    let {tabs} = this.data;
    tabs.forEach((v,i) => {
      i==index?v.isActive=true:v.isActive=false;
    });
    // 第三步赋值到data
    this.setData({tabs});
  },
  // 点击事件
  handleTabsItemChange(e){
    // 1.获取被点击的标题索引
    const {index} = e.detail;
    this.changeTitle(index);
    // 2.重新获取数据
    let PayOrders = this.orderTriage(index+1);
    // 3.重新渲染数据
    this.setData({PayOrders});
  },
  // 区分订单类别
  orderTriage(type){
    // 4.获取到本地存储的支付信息
    let PayOrders = wx.getStorageSync('PayOrders');
    if(type==2){
      // 5.未支付的信息
      PayOrders = PayOrders.filter(v => !v.isPay);
      return PayOrders;
    }else if(type==3){
      // 5.已经支付的信息
      PayOrders = PayOrders.filter(v => v.isPay);
      return PayOrders;
    }else{
      // 全部订单信息
      return PayOrders;
    }

  }
})